﻿using Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace REAL
{
    public partial class frmRemitosConsulta : Form
    {
        public frmRemitosConsulta()
        {
            InitializeComponent();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void GetProveedores()
        {
            cmbProveedor.ValueMember = "proid";
            cmbProveedor.DisplayMember = "pronombre";
            cmbProveedor.DataSource = Proveedores.FindAll();
        }

        private void frmRemitosConsulta_Load(object sender, EventArgs e)
        {
            GetProveedores();
            GetRemitos();
        }

        private void GetRemitos()
        {
            var resultado = (from fila in RemitosProveedor.FindAllConProveedorSucursal()
                             select new
                             {
                                 fila.id,
                                 fila.proveedor.pronombre,
                                 fila.fechaemision,
                                 fila.fecharecepcion,
                                 fila.numero,
                                 fila.sucursal.sucnombre

                             }).ToList();
            
            dgvRemitos.Rows.Clear();
            foreach(var row in resultado)
            {
                dgvRemitos.Rows.Add(row.id, row.pronombre, row.fechaemision.ToShortDateString(), row.fecharecepcion.ToShortDateString(), row.numero, row.sucnombre);
            }

            dgvRemitos.Columns[0].Visible = false;
        }

        private void txtRemito_TextChanged(object sender, EventArgs e)
        {
            if(!string.IsNullOrEmpty(txtRemito.Text))
            {
                var resultado = (from fila in RemitosProveedor.FindAllConProveedorSucursal()
                                 where fila.numero.Contains(txtRemito.Text)
                                 select new
                                 {
                                     fila.id,
                                     fila.proveedor.pronombre,
                                     fila.fechaemision,
                                     fila.fecharecepcion,
                                     fila.numero,
                                     fila.sucursal.sucnombre

                                 }).ToList();

                dgvRemitos.Rows.Clear();
                foreach (var row in resultado)
                {
                    dgvRemitos.Rows.Add(row.id, row.pronombre, row.fechaemision.ToShortDateString(), row.fecharecepcion.ToShortDateString(), row.numero, row.sucnombre);
                }
                dgvRemitos.Columns[0].Visible = false;
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            var resultado = (from fila in RemitosProveedor.FindAllConProveedorSucursal()
                             where ((fila.numero.Contains(txtRemito.Text)) || (txtRemito.Text == string.Empty))
                             && (fila.proveedor_id == Convert.ToInt32(cmbProveedor.SelectedValue))
                             select new
                             {
                                 fila.id,
                                 fila.proveedor.pronombre,
                                 fila.fechaemision,
                                 fila.fecharecepcion,
                                 fila.numero,
                                 fila.sucursal.sucnombre

                             }).ToList();

            dgvRemitos.Rows.Clear();
            foreach (var row in resultado)
            {
                dgvRemitos.Rows.Add(row.id, row.pronombre, row.fechaemision.ToShortDateString(), row.fecharecepcion.ToShortDateString(), row.numero, row.sucnombre);
            }
            dgvRemitos.Columns[0].Visible = false;
        }
    }
}
